home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / PCSSP.LZH / PC-SSP.ZIP / STATDATA.ZIP / SUBMX.FOR < prev    next >
Text File  |  1985-11-29  |  2KB  |  63 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE SUBMX
  5. C
  6. C        PURPOSE
  7. C           BASED ON VECTOR S DERIVED FROM SUBROUTINE SUBST OR ABSNT,
  8. C           THIS SUBROUTINE COPIES FROM A LARGER MATRIX OF OBSERVATION
  9. C           DATA A SUBSET MATRIX OF THOSE OBSERVATIONS WHICH HAVE
  10. C           SATISFIED CERTAIN CONDITION.  THIS SUBROUTINE IS NORMALLY
  11. C           USED PRIOR TO STATISTICAL ANALYSES (E.G., MULTIPLE REGRES-
  12. C           SION, FACTOR ANALYSIS).
  13. C
  14. C        USAGE
  15. C           CALL SUBMX (A,D,S,NO,NV,N)
  16. C
  17. C        DESCRIPTION OF PARAMETERS
  18. C           A  - INPUT MATRIX OF OBSERVATIONS, NO BY NV.
  19. C           D  - OUTPUT MATRIX OF OBSERVATIONS, N BY NV.
  20. C           S -  INPUT VECTOR OF LENGTH NO CONTAINING THE CODES DERIVED
  21. C                FROM SUBROUTINE SUBST OR ABSNT.
  22. C           NO - NUMBER OF OBSERVATIONS. NO MUST BE > OR = TO 1.
  23. C           NV - NUMBER OF VARIABLES. NV MUST BE > OR = TO 1.
  24. C           N  - OUTPUT VARIABLE CONTAINING THE NUMBER OF NON-ZERO CODES
  25. C                IN VECTOR S.
  26. C
  27. C        REMARKS
  28. C           MATRIX D CAN BE IN THE SAME LOCATION AS MATRIX A.
  29. C
  30. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  31. C           NONE
  32. C
  33. C        METHOD
  34. C           IF S(I) CONTAINS A NON-ZERO CODE, I-TH OBSERVATION IS
  35. C           COPIED FROM THE INPUT MATRIX TO THE OUTPUT MATRIX.
  36. C
  37. C     ..................................................................
  38. C
  39.       SUBROUTINE SUBMX (A,D,S,NO,NV,N)
  40.       DIMENSION A(1),D(1),S(1)
  41. C
  42.       L=0
  43.       LL=0
  44.       DO 20 J=1,NV
  45.       DO 15 I=1,NO
  46.       L=L+1
  47.       IF(S(I)) 15, 15, 10
  48.    10 LL=LL+1
  49.       D(LL)=A(L)
  50.    15 CONTINUE
  51.    20 CONTINUE
  52. C
  53. C        COUNT NON-ZERO CODES IN VECTOR S
  54. C
  55.       N=0
  56.       DO 30 I=1,NO
  57.       IF(S(I)) 30, 30, 25
  58.    25 N=N+1
  59.    30 CONTINUE
  60. C
  61.       RETURN
  62.       END
  63.